<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>OpenType Font Handling</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="index.html" title="Pango Reference Manual">
<link rel="up" href="lowlevel.html" title="Low Level Functionality">
<link rel="prev" href="PangoFcDecoder.html" title="PangoFcDecoder">
<link rel="next" href="pango-Coverage-Maps.html" title="Coverage Maps">
<meta name="generator" content="GTK-Doc V1.10 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="chapter" href="pango.html" title="Basic Pango Interfaces">
<link rel="chapter" href="rendering.html" title="Rendering with Pango">
<link rel="chapter" href="lowlevel.html" title="Low Level Functionality">
<link rel="chapter" href="tools.html" title="Pango Tools">
<link rel="chapter" href="pango-hierarchy.html" title="Object Hierarchy">
<link rel="index" href="index-all.html" title="Index">
<link rel="index" href="index-deprecated.html" title="Index of deprecated symbols">
<link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2">
<link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4">
<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6">
<link rel="index" href="index-1.8.html" title="Index of new symbols in 1.8">
<link rel="index" href="index-1.10.html" title="Index of new symbols in 1.10">
<link rel="index" href="index-1.12.html" title="Index of new symbols in 1.12">
<link rel="index" href="index-1.14.html" title="Index of new symbols in 1.14">
<link rel="index" href="index-1.16.html" title="Index of new symbols in 1.16">
<link rel="index" href="index-1.18.html" title="Index of new symbols in 1.18">
<link rel="index" href="index-1.20.html" title="Index of new symbols in 1.20">
<link rel="index" href="index-1.22.html" title="Index of new symbols in 1.22">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="PangoFcDecoder.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="lowlevel.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">Pango Reference Manual</th>
<td><a accesskey="n" href="pango-Coverage-Maps.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts"><nobr><a href="#pango-OpenType-Font-Handling.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#pango-OpenType-Font-Handling.description" class="shortcut">Description</a>
                   | 
                  <a href="#pango-OpenType-Font-Handling.object-hierarchy" class="shortcut">Object Hierarchy</a></nobr></td></tr>
</table>
<div class="refentry" lang="en">
<a name="pango-OpenType-Font-Handling"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="pango-OpenType-Font-Handling.top_of_page"></a>OpenType Font Handling</span></h2>
<p>OpenType Font Handling — Obtaining information from OpenType tables</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1" lang="en">
<a name="pango-OpenType-Font-Handling.stability-level"></a><h2>Stability Level</h2>
Unstable, unless otherwise indicated
</div>
<div class="refsynopsisdiv">
<a name="pango-OpenType-Font-Handling.synopsis"></a><h2>Synopsis</h2>
<a name="PangoOTInfo"></a><a name="PangoOTRuleset"></a><pre class="synopsis">
typedef             <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a>;
                    <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo-struct" title="PangoOTInfo">PangoOTInfo</a>;
                    <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a>;
                    <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTGlyph" title="PangoOTGlyph">PangoOTGlyph</a>;
                    <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset-struct" title="PangoOTRuleset">PangoOTRuleset</a>;
                    <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription">PangoOTRulesetDescription</a>;
enum                <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a>;
                    <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTFeatureMap" title="PangoOTFeatureMap">PangoOTFeatureMap</a>;
#define             <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-TAG-MAKE:CAPS" title="PANGO_OT_TAG_MAKE()">PANGO_OT_TAG_MAKE</a>                   (c1,c2,c3,c4)
#define             <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-TAG-MAKE-FROM-STRING:CAPS" title="PANGO_OT_TAG_MAKE_FROM_STRING()">PANGO_OT_TAG_MAKE_FROM_STRING</a>       (s)
#define             <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-ALL-GLYPHS:CAPS" title="PANGO_OT_ALL_GLYPHS">PANGO_OT_ALL_GLYPHS</a>
#define             <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-NO-FEATURE:CAPS" title="PANGO_OT_NO_FEATURE">PANGO_OT_NO_FEATURE</a>
#define             <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-NO-SCRIPT:CAPS" title="PANGO_OT_NO_SCRIPT">PANGO_OT_NO_SCRIPT</a>
#define             <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-DEFAULT-LANGUAGE:CAPS" title="PANGO_OT_DEFAULT_LANGUAGE">PANGO_OT_DEFAULT_LANGUAGE</a>
#define             <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-TAG-DEFAULT-LANGUAGE:CAPS" title="PANGO_OT_TAG_DEFAULT_LANGUAGE">PANGO_OT_TAG_DEFAULT_LANGUAGE</a>
#define             <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-TAG-DEFAULT-SCRIPT:CAPS" title="PANGO_OT_TAG_DEFAULT_SCRIPT">PANGO_OT_TAG_DEFAULT_SCRIPT</a>
<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a>*        <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-get" title="pango_ot_info_get ()">pango_ot_info_get</a>                   (FT_Face face);
<a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a>            <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-find-script" title="pango_ot_info_find_script ()">pango_ot_info_find_script</a>           (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a> script_tag,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> *script_index);
<a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a>            <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-find-language" title="pango_ot_info_find_language ()">pango_ot_info_find_language</a>         (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> script_index,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a> language_tag,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> *language_index,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> *required_feature_index);
<a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a>            <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-find-feature" title="pango_ot_info_find_feature ()">pango_ot_info_find_feature</a>          (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a> feature_tag,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> script_index,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> language_index,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> *feature_index);
<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a>*         <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-list-scripts" title="pango_ot_info_list_scripts ()">pango_ot_info_list_scripts</a>          (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type);
<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a>*         <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-list-languages" title="pango_ot_info_list_languages ()">pango_ot_info_list_languages</a>        (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> script_index,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a> language_tag);
<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a>*         <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-list-features" title="pango_ot_info_list_features ()">pango_ot_info_list_features</a>         (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a> tag,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> script_index,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> language_index);
<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a>*      <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-buffer-new" title="pango_ot_buffer_new ()">pango_ot_buffer_new</a>                 (<a class="link" href="PangoFcFont.html" title="PangoFcFont">PangoFcFont</a> *font);
void                <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-buffer-destroy" title="pango_ot_buffer_destroy ()">pango_ot_buffer_destroy</a>             (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer);
void                <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-buffer-clear" title="pango_ot_buffer_clear ()">pango_ot_buffer_clear</a>               (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer);
void                <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-buffer-add-glyph" title="pango_ot_buffer_add_glyph ()">pango_ot_buffer_add_glyph</a>           (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> glyph,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> properties,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> cluster);
void                <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-buffer-set-rtl" title="pango_ot_buffer_set_rtl ()">pango_ot_buffer_set_rtl</a>             (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a> rtl);
void                <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-buffer-set-zero-width-marks" title="pango_ot_buffer_set_zero_width_marks ()">pango_ot_buffer_set_zero_width_marks</a>
                                                        (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a> zero_width_marks);
void                <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-buffer-get-glyphs" title="pango_ot_buffer_get_glyphs ()">pango_ot_buffer_get_glyphs</a>          (const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTGlyph" title="PangoOTGlyph">PangoOTGlyph</a> **glyphs,
                                                         int *n_glyphs);
void                <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-buffer-output" title="pango_ot_buffer_output ()">pango_ot_buffer_output</a>              (const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer,
                                                         <a class="link" href="pango-Glyph-Storage.html#PangoGlyphString" title="PangoGlyphString">PangoGlyphString</a> *glyphs);
const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a>* <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-get-for-description" title="pango_ot_ruleset_get_for_description ()">pango_ot_ruleset_get_for_description</a>
                                                        (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription">PangoOTRulesetDescription</a> *desc);
<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a>*     <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-new" title="pango_ot_ruleset_new ()">pango_ot_ruleset_new</a>                (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info);
<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a>*     <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-new-for" title="pango_ot_ruleset_new_for ()">pango_ot_ruleset_new_for</a>            (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         <a class="link" href="pango-Scripts-and-Languages.html#PangoScript" title="enum PangoScript">PangoScript</a> script,
                                                         <a class="link" href="pango-Scripts-and-Languages.html#PangoLanguage" title="PangoLanguage">PangoLanguage</a> *language);
<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a>*     <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-new-from-description" title="pango_ot_ruleset_new_from_description ()">pango_ot_ruleset_new_from_description</a>
                                                        (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription">PangoOTRulesetDescription</a> *desc);
void                <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-add-feature" title="pango_ot_ruleset_add_feature ()">pango_ot_ruleset_add_feature</a>        (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a> *ruleset,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> feature_index,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gulong"
>gulong</a> property_bit);
<a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a>            <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-maybe-add-feature" title="pango_ot_ruleset_maybe_add_feature ()">pango_ot_ruleset_maybe_add_feature</a>  (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a> *ruleset,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a> feature_tag,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gulong"
>gulong</a> property_bit);
<a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a>               <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-maybe-add-features" title="pango_ot_ruleset_maybe_add_features ()">pango_ot_ruleset_maybe_add_features</a> (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a> *ruleset,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type,
                                                         const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTFeatureMap" title="PangoOTFeatureMap">PangoOTFeatureMap</a> *features,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> n_features);
<a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a>               <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-get-feature-count" title="pango_ot_ruleset_get_feature_count ()">pango_ot_ruleset_get_feature_count</a>  (const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a> *ruleset,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> *n_gsub_features,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> *n_gpos_features);
void                <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-substitute" title="pango_ot_ruleset_substitute ()">pango_ot_ruleset_substitute</a>         (const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a> *ruleset,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer);
void                <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-position" title="pango_ot_ruleset_position ()">pango_ot_ruleset_position</a>           (const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a> *ruleset,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer);
<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription">PangoOTRulesetDescription</a>* <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-description-copy" title="pango_ot_ruleset_description_copy ()">pango_ot_ruleset_description_copy</a>
                                                        (const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription">PangoOTRulesetDescription</a> *desc);
<a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a>            <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-description-equal" title="pango_ot_ruleset_description_equal ()">pango_ot_ruleset_description_equal</a>  (const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription">PangoOTRulesetDescription</a> *desc1,
                                                         const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription">PangoOTRulesetDescription</a> *desc2);
void                <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-description-free" title="pango_ot_ruleset_description_free ()">pango_ot_ruleset_description_free</a>   (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription">PangoOTRulesetDescription</a> *desc);
<a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a>               <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-description-hash" title="pango_ot_ruleset_description_hash ()">pango_ot_ruleset_description_hash</a>   (const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription">PangoOTRulesetDescription</a> *desc);
<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a>          <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-tag-from-language" title="pango_ot_tag_from_language ()">pango_ot_tag_from_language</a>          (<a class="link" href="pango-Scripts-and-Languages.html#PangoLanguage" title="PangoLanguage">PangoLanguage</a> *language);
<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a>          <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-tag-from-script" title="pango_ot_tag_from_script ()">pango_ot_tag_from_script</a>            (<a class="link" href="pango-Scripts-and-Languages.html#PangoScript" title="enum PangoScript">PangoScript</a> script);
<a class="link" href="pango-Scripts-and-Languages.html#PangoLanguage" title="PangoLanguage">PangoLanguage</a>*      <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-tag-to-language" title="pango_ot_tag_to_language ()">pango_ot_tag_to_language</a>            (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a> language_tag);
<a class="link" href="pango-Scripts-and-Languages.html#PangoScript" title="enum PangoScript">PangoScript</a>         <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-tag-to-script" title="pango_ot_tag_to_script ()">pango_ot_tag_to_script</a>              (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a> script_tag);
</pre>
</div>
<div class="refsect1" lang="en">
<a name="pango-OpenType-Font-Handling.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="synopsis">
  <a
href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
>GObject</a>
   +----PangoOTInfo
</pre>
<pre class="synopsis">
  <a
href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject"
>GObject</a>
   +----PangoOTRuleset
</pre>
</div>
<div class="refsect1" lang="en">
<a name="pango-OpenType-Font-Handling.description"></a><h2>Description</h2>
<p>
Functions and macros in this section are used to implement the OpenType Layout
features and algorithms.  These are mostly useful when writing Fontconfig-based
shaping engines
</p>
</div>
<div class="refsect1" lang="en">
<a name="pango-OpenType-Font-Handling.details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
<a name="PangoOTTag"></a><h3>PangoOTTag</h3>
<pre class="programlisting">typedef guint32 PangoOTTag;
</pre>
<p>
The <span class="type">PangoOTTag</span> typedef is used to represent TrueType and OpenType
four letter tags inside Pango. Use <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-TAG-MAKE:CAPS" title="PANGO_OT_TAG_MAKE()"><code class="function">PANGO_OT_TAG_MAKE()</code></a>
or <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-TAG-MAKE-FROM-STRING:CAPS" title="PANGO_OT_TAG_MAKE_FROM_STRING()"><code class="function">PANGO_OT_TAG_MAKE_FROM_STRING()</code></a> macros to create <span class="type">PangoOTTag</span>s manually.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="PangoOTInfo-struct"></a><h3>PangoOTInfo</h3>
<pre class="programlisting">typedef struct _PangoOTInfo PangoOTInfo;</pre>
<p>
The <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo"><span class="type">PangoOTInfo</span></a> struct contains the various 
tables associated with an OpenType font. It contains only private fields and
should only be accessed via the <code class="function">pango_ot_info_*</code> functions
which are documented below. To obtain a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo"><span class="type">PangoOTInfo</span></a>,
use <code class="function">pango_ot_info_new()</code>.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="PangoOTBuffer"></a><h3>PangoOTBuffer</h3>
<pre class="programlisting">typedef struct _PangoOTBuffer PangoOTBuffer;</pre>
<p>
The <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a> structure is used to store strings of glyphs associated
with a <a class="link" href="PangoFcFont.html" title="PangoFcFont"><span class="type">PangoFcFont</span></a>, suitable for OpenType layout processing.  It contains
only private fields and should only be accessed via the
<code class="function">pango_ot_buffer_*</code> functions which are documented below.
To obtain a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a>, use <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-buffer-new" title="pango_ot_buffer_new ()"><code class="function">pango_ot_buffer_new()</code></a>.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="PangoOTGlyph"></a><h3>PangoOTGlyph</h3>
<pre class="programlisting">typedef struct {
  guint    glyph;
  guint    properties;
  guint    cluster;
  gushort  component;
  gushort  ligID;
  gushort  property_cache;    /* Internal */
} PangoOTGlyph;
</pre>
<p>
The <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTGlyph" title="PangoOTGlyph"><span class="type">PangoOTGlyph</span></a> structure represents a single glyph together with
information used for OpenType layout processing of the glyph.
It contains the following fields.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> <em class="structfield"><code>glyph</code></em>;</span></p></td>
<td>the glyph itself.
</td>
</tr>
<tr>
<td><p><span class="term"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> <em class="structfield"><code>properties</code></em>;</span></p></td>
<td>the properties value, identifying which features should be
	     applied on this glyph.  See <code class="function">pango_ruleset_add_feature()</code>.
</td>
</tr>
<tr>
<td><p><span class="term"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> <em class="structfield"><code>cluster</code></em>;</span></p></td>
<td>the cluster that this glyph belongs to.
</td>
</tr>
<tr>
<td><p><span class="term"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gushort"
>gushort</a> <em class="structfield"><code>component</code></em>;</span></p></td>
<td>a component value, set by the OpenType layout engine.
</td>
</tr>
<tr>
<td><p><span class="term"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gushort"
>gushort</a> <em class="structfield"><code>ligID</code></em>;</span></p></td>
<td>a ligature index value, set by the OpenType layout engine.
</td>
</tr>
<tr>
<td><p><span class="term"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gushort"
>gushort</a> <em class="structfield"><code>property_cache</code></em>;</span></p></td>
<td>for internal use.

</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="PangoOTRuleset-struct"></a><h3>PangoOTRuleset</h3>
<pre class="programlisting">typedef struct _PangoOTRuleset PangoOTRuleset;</pre>
<p>
The <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a> structure holds a
set of features selected from the tables in an OpenType font.
(A feature is an operation such as adjusting glyph positioning
that should be applied to a text feature such as a certain
type of accent.) A <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a>
is created with <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-new" title="pango_ot_ruleset_new ()"><code class="function">pango_ot_ruleset_new()</code></a>, features are added
to it with <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-add-feature" title="pango_ot_ruleset_add_feature ()"><code class="function">pango_ot_ruleset_add_feature()</code></a>, then it is
applied to a <a class="link" href="pango-Glyph-Storage.html#PangoGlyphString" title="PangoGlyphString"><span class="type">PangoGlyphString</span></a> with <code class="function">pango_ot_ruleset_shape()</code>.
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="PangoOTRulesetDescription"></a><h3>PangoOTRulesetDescription</h3>
<pre class="programlisting">typedef struct {
  PangoScript               script;
  PangoLanguage            *language;
  const PangoOTFeatureMap  *static_gsub_features;
  guint                   n_static_gsub_features;
  const PangoOTFeatureMap  *static_gpos_features;
  guint                   n_static_gpos_features;
  const PangoOTFeatureMap  *other_features;
  guint                   n_other_features;
} PangoOTRulesetDescription;
</pre>
<p>
The <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a> structure holds all the information needed
to build a complete <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a> from an OpenType font.
The main use of this struct is to act as the key for a per-font
hash of rulesets.  The user populates a ruleset description and
gets the ruleset using <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-get-for-description" title="pango_ot_ruleset_get_for_description ()"><code class="function">pango_ot_ruleset_get_for_description()</code></a>
or create a new one using <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-new-from-description" title="pango_ot_ruleset_new_from_description ()"><code class="function">pango_ot_ruleset_new_from_description()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="pango-Scripts-and-Languages.html#PangoScript" title="enum PangoScript">PangoScript</a> <em class="structfield"><code>script</code></em>;</span></p></td>
<td>a <a class="link" href="pango-Scripts-and-Languages.html#PangoScript" title="enum PangoScript"><span class="type">PangoScript</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><a class="link" href="pango-Scripts-and-Languages.html#PangoLanguage" title="PangoLanguage">PangoLanguage</a> *<em class="structfield"><code>language</code></em>;</span></p></td>
<td>a <a class="link" href="pango-Scripts-and-Languages.html#PangoLanguage" title="PangoLanguage"><span class="type">PangoLanguage</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term">const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTFeatureMap" title="PangoOTFeatureMap">PangoOTFeatureMap</a> *<em class="structfield"><code>static_gsub_features</code></em>;</span></p></td>
<td>static map of GSUB features, or <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> <em class="structfield"><code>n_static_gsub_features</code></em>;</span></p></td>
<td>length of <em class="parameter"><code>static_gsub_features</code></em>, or 0.
</td>
</tr>
<tr>
<td><p><span class="term">const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTFeatureMap" title="PangoOTFeatureMap">PangoOTFeatureMap</a> *<em class="structfield"><code>static_gpos_features</code></em>;</span></p></td>
<td>static map of GPOS features, or <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> <em class="structfield"><code>n_static_gpos_features</code></em>;</span></p></td>
<td>length of <em class="parameter"><code>static_gpos_features</code></em>, or 0.
</td>
</tr>
<tr>
<td><p><span class="term">const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTFeatureMap" title="PangoOTFeatureMap">PangoOTFeatureMap</a> *<em class="structfield"><code>other_features</code></em>;</span></p></td>
<td>map of extra features to add to both GSUB and GPOS, or <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>.
                 Unlike the static maps, this pointer need not live beyond
		 the life of function calls taking this struct.
</td>
</tr>
<tr>
<td><p><span class="term"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> <em class="structfield"><code>n_other_features</code></em>;</span></p></td>
<td>length of <em class="parameter"><code>other_features</code></em>, or 0.
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 1.18

</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="PangoOTTableType"></a><h3>enum PangoOTTableType</h3>
<pre class="programlisting">typedef enum
{
  PANGO_OT_TABLE_GSUB,
  PANGO_OT_TABLE_GPOS
} PangoOTTableType;
</pre>
<p>
The <span class="type">PangoOTTableType</span> enumeration values are used to
identify the various OpenType tables in the
<code class="function">pango_ot_info_*</code> functions.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="PANGO-OT-TABLE-GSUB:CAPS"></a><span class="term"><code class="literal">PANGO_OT_TABLE_GSUB</code></span></p></td>
<td>The GSUB table.
</td>
</tr>
<tr>
<td><p><a name="PANGO-OT-TABLE-GPOS:CAPS"></a><span class="term"><code class="literal">PANGO_OT_TABLE_GPOS</code></span></p></td>
<td>The GPOS table.

</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="PangoOTFeatureMap"></a><h3>PangoOTFeatureMap</h3>
<pre class="programlisting">typedef struct {
  char     feature_name[5];
  gulong   property_bit;
} PangoOTFeatureMap;
</pre>
<p>
The <span class="type">PangoOTFeatureMap</span> typedef is used to represent an OpenType
feature with the property bit associated with it.  The feature tag is
represented as a char array instead of a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag"><span class="type">PangoOTTag</span></a> for convenience.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term">char <em class="structfield"><code>feature_name</code></em>[5];</span></p></td>
<td>feature tag in represented as four-letter ASCII string.
</td>
</tr>
<tr>
<td><p><span class="term"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gulong"
>gulong</a> <em class="structfield"><code>property_bit</code></em>;</span></p></td>
<td>the property bit to use for this feature.  See
	       <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-add-feature" title="pango_ot_ruleset_add_feature ()"><code class="function">pango_ot_ruleset_add_feature()</code></a> for details.
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 1.18

</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="PANGO-OT-TAG-MAKE:CAPS"></a><h3>PANGO_OT_TAG_MAKE()</h3>
<pre class="programlisting">#define PANGO_OT_TAG_MAKE(c1,c2,c3,c4)		((PangoOTTag) FT_MAKE_TAG (c1, c2, c3, c4))
</pre>
<p>
Creates a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag"><span class="type">PangoOTTag</span></a> from four characters.  This is similar and
compatible with the <code class="function"><code class="function">FT_MAKE_TAG()</code></code> macro from
FreeType.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>c1</code></em> :</span></p></td>
<td>First character.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>c2</code></em> :</span></p></td>
<td>Second character.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>c3</code></em> :</span></p></td>
<td>Third character.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>c4</code></em> :</span></p></td>
<td>Fourth character.


</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="PANGO-OT-TAG-MAKE-FROM-STRING:CAPS"></a><h3>PANGO_OT_TAG_MAKE_FROM_STRING()</h3>
<pre class="programlisting">#define             PANGO_OT_TAG_MAKE_FROM_STRING(s)</pre>
<p>
Creates a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag"><span class="type">PangoOTTag</span></a> from a string. The string should be at least
four characters long (pad with space characters if needed), and need
not be nul-terminated.  This is a convenience wrapper around
<a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-TAG-MAKE:CAPS" title="PANGO_OT_TAG_MAKE()"><code class="function">PANGO_OT_TAG_MAKE()</code></a>, but cannot be used in certain situations, for
example, as a switch expression, as it dereferences pointers.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>s</code></em> :</span></p></td>
<td>The string representation of the tag.


</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="PANGO-OT-ALL-GLYPHS:CAPS"></a><h3>PANGO_OT_ALL_GLYPHS</h3>
<pre class="programlisting">#define PANGO_OT_ALL_GLYPHS			((guint) 0xFFFF)
</pre>
<p>
This is used as the property bit in <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-add-feature" title="pango_ot_ruleset_add_feature ()"><code class="function">pango_ot_ruleset_add_feature()</code></a> when a
feature should be applied to all glyphs.
</p>
<p class="since">Since 1.16


</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="PANGO-OT-NO-FEATURE:CAPS"></a><h3>PANGO_OT_NO_FEATURE</h3>
<pre class="programlisting">#define PANGO_OT_NO_FEATURE			((guint) 0xFFFF)
</pre>
<p>
This is used as a feature index that represent no feature, that is, should be
skipped.  It may be returned as feature index by <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-find-feature" title="pango_ot_info_find_feature ()"><code class="function">pango_ot_info_find_feature()</code></a>
if the feature is not found, and <code class="function">pango_ot_rulset_add_feature()</code> function
automatically skips this value, so no special handling is required by the
user.
</p>
<p class="since">Since 1.18


</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="PANGO-OT-NO-SCRIPT:CAPS"></a><h3>PANGO_OT_NO_SCRIPT</h3>
<pre class="programlisting">#define PANGO_OT_NO_SCRIPT			((guint) 0xFFFF)
</pre>
<p>
This is used as a script index that represent no script, that is, when the
requested script was not found, and a default ('DFLT') script was not found
either.  It may be returned as script index by <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-find-script" title="pango_ot_info_find_script ()"><code class="function">pango_ot_info_find_script()</code></a>
if the script or a default script are not found, all other functions
taking a script index essentially return if the input script index is
this value, so no special handling is required by the user.
</p>
<p class="since">Since 1.18


</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="PANGO-OT-DEFAULT-LANGUAGE:CAPS"></a><h3>PANGO_OT_DEFAULT_LANGUAGE</h3>
<pre class="programlisting">#define PANGO_OT_DEFAULT_LANGUAGE		((guint) 0xFFFF)
</pre>
<p>
This is used as the language index in <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-find-feature" title="pango_ot_info_find_feature ()"><code class="function">pango_ot_info_find_feature()</code></a> when
the default language system of the script is desired.

It is also returned by <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-find-language" title="pango_ot_info_find_language ()"><code class="function">pango_ot_info_find_language()</code></a> if the requested language
is not found, or the requested language tag was PANGO_OT_TAG_DEFAULT_LANGUAGE.
The end result is that one can always call <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-tag-from-language" title="pango_ot_tag_from_language ()"><code class="function">pango_ot_tag_from_language()</code></a>
followed by <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-find-language" title="pango_ot_info_find_language ()"><code class="function">pango_ot_info_find_language()</code></a> and pass the result to
<a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-find-feature" title="pango_ot_info_find_feature ()"><code class="function">pango_ot_info_find_feature()</code></a> without having to worry about falling back to
default language system explicitly.
</p>
<p class="since">Since 1.16


</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="PANGO-OT-TAG-DEFAULT-LANGUAGE:CAPS"></a><h3>PANGO_OT_TAG_DEFAULT_LANGUAGE</h3>
<pre class="programlisting">#define PANGO_OT_TAG_DEFAULT_LANGUAGE		PANGO_OT_TAG_MAKE ('d', 'f', 'l', 't')
</pre>
<p>
This is a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag"><span class="type">PangoOTTag</span></a> representing a special language tag 'dflt'.  It is
returned as language tag by <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-tag-from-language" title="pango_ot_tag_from_language ()"><code class="function">pango_ot_tag_from_language()</code></a> if the requested
language is not found.  It is safe to pass this value to
<a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-find-language" title="pango_ot_info_find_language ()"><code class="function">pango_ot_info_find_language()</code></a> as that function falls back to returning default
language-system if the requested language tag is not found.
</p>
<p class="since">Since 1.18


</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="PANGO-OT-TAG-DEFAULT-SCRIPT:CAPS"></a><h3>PANGO_OT_TAG_DEFAULT_SCRIPT</h3>
<pre class="programlisting">#define PANGO_OT_TAG_DEFAULT_SCRIPT		PANGO_OT_TAG_MAKE ('D', 'F', 'L', 'T')
</pre>
<p>
This is a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag"><span class="type">PangoOTTag</span></a> representing the special script tag 'DFLT'.  It is
returned as script tag by <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-tag-from-script" title="pango_ot_tag_from_script ()"><code class="function">pango_ot_tag_from_script()</code></a> if the requested script
is not found.
</p>
<p class="since">Since 1.18


</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-info-get"></a><h3>pango_ot_info_get ()</h3>
<pre class="programlisting"><a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a>*        pango_ot_info_get                   (FT_Face face);</pre>
<p>
Returns the <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo"><span class="type">PangoOTInfo</span></a> structure for the given FreeType font face.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>face</code></em> :</span></p></td>
<td> a <span class="type">FT_Face</span>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo"><span class="type">PangoOTInfo</span></a> for <em class="parameter"><code>face</code></em>. This object will have
the same lifetime as <em class="parameter"><code>face</code></em>.

</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-info-find-script"></a><h3>pango_ot_info_find_script ()</h3>
<pre class="programlisting"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a>            pango_ot_info_find_script           (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a> script_tag,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> *script_index);</pre>
<p>
Finds the index of a script.  If not found, tries to find the 'DFLT'
and then 'dflt' scripts and return the index of that in <em class="parameter"><code>script_index</code></em>.
If none of those is found either, <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-NO-SCRIPT:CAPS" title="PANGO_OT_NO_SCRIPT"><code class="literal">PANGO_OT_NO_SCRIPT</code></a> is placed in
<em class="parameter"><code>script_index</code></em>.
</p>
<p>
All other functions taking an input script_index parameter know
how to handle <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-NO-SCRIPT:CAPS" title="PANGO_OT_NO_SCRIPT"><code class="literal">PANGO_OT_NO_SCRIPT</code></a>, so one can ignore the return
value of this function completely and proceed, to enjoy the automatic
fallback to the 'DFLT'/'dflt' script.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo"><span class="type">PangoOTInfo</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>table_type</code></em> :</span></p></td>
<td> the table type to obtain information about.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>script_tag</code></em> :</span></p></td>
<td> the tag of the script to find.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>script_index</code></em> :</span></p></td>
<td> location to store the index of the script, or <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the script was found.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-info-find-language"></a><h3>pango_ot_info_find_language ()</h3>
<pre class="programlisting"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a>            pango_ot_info_find_language         (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> script_index,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a> language_tag,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> *language_index,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> *required_feature_index);</pre>
<p>
Finds the index of a language and its required feature index.
If the language is not found, sets <em class="parameter"><code>language_index</code></em> to
PANGO_OT_DEFAULT_LANGUAGE and the required feature of the default language
system is returned in required_feature_index.  For best compatibility with
some fonts, also searches the language system tag 'dflt' before falling
back to the default language system, but that is transparent to the user.
The user can simply ignore the return value of this function to
automatically fall back to the default language system.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo"><span class="type">PangoOTInfo</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>table_type</code></em> :</span></p></td>
<td> the table type to obtain information about.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>script_index</code></em> :</span></p></td>
<td> the index of the script whose languages are searched.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>language_tag</code></em> :</span></p></td>
<td> the tag of the language to find.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>language_index</code></em> :</span></p></td>
<td> location to store the index of the language, or <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>required_feature_index</code></em> :</span></p></td>
<td> location to store the required feature index of
   the language, or <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the language was found.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-info-find-feature"></a><h3>pango_ot_info_find_feature ()</h3>
<pre class="programlisting"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a>            pango_ot_info_find_feature          (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a> feature_tag,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> script_index,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> language_index,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> *feature_index);</pre>
<p>
Finds the index of a feature.  If the feature is not found, sets
<em class="parameter"><code>feature_index</code></em> to PANGO_OT_NO_FEATURE, which is safe to pass to
<a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-add-feature" title="pango_ot_ruleset_add_feature ()"><code class="function">pango_ot_ruleset_add_feature()</code></a> and similar functions.
</p>
<p>
In the future, this may set <em class="parameter"><code>feature_index</code></em> to an special value that if used
in <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-add-feature" title="pango_ot_ruleset_add_feature ()"><code class="function">pango_ot_ruleset_add_feature()</code></a> will ask Pango to synthesize the
requested feature based on Unicode properties and data.  However, this
function will still return <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"
><code class="literal">FALSE</code></a> in those cases.  So, users may want to
ignore the return value of this function in certain cases.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo"><span class="type">PangoOTInfo</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>table_type</code></em> :</span></p></td>
<td> the table type to obtain information about.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>feature_tag</code></em> :</span></p></td>
<td> the tag of the feature to find.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>script_index</code></em> :</span></p></td>
<td> the index of the script.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>language_index</code></em> :</span></p></td>
<td> the index of the language whose features are searched,
    or <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-DEFAULT-LANGUAGE:CAPS" title="PANGO_OT_DEFAULT_LANGUAGE"><code class="literal">PANGO_OT_DEFAULT_LANGUAGE</code></a> to use the default language of the script.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>feature_index</code></em> :</span></p></td>
<td> location to store the index of the feature, or <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the feature was found.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-info-list-scripts"></a><h3>pango_ot_info_list_scripts ()</h3>
<pre class="programlisting"><a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a>*         pango_ot_info_list_scripts          (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type);</pre>
<p>
Obtains the list of available scripts.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo"><span class="type">PangoOTInfo</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>table_type</code></em> :</span></p></td>
<td> the table type to obtain information about.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a newly-allocated zero-terminated array containing the tags of the
  available scripts.  Should be freed using <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Memory-Allocation.html#g-free"
><code class="function">g_free()</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-info-list-languages"></a><h3>pango_ot_info_list_languages ()</h3>
<pre class="programlisting"><a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a>*         pango_ot_info_list_languages        (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> script_index,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a> language_tag);</pre>
<p>
Obtains the list of available languages for a given script.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo"><span class="type">PangoOTInfo</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>table_type</code></em> :</span></p></td>
<td> the table type to obtain information about.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>script_index</code></em> :</span></p></td>
<td> the index of the script to list languages for.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>language_tag</code></em> :</span></p></td>
<td> unused parameter.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a newly-allocated zero-terminated array containing the tags of the
  available languages.  Should be freed using <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Memory-Allocation.html#g-free"
><code class="function">g_free()</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-info-list-features"></a><h3>pango_ot_info_list_features ()</h3>
<pre class="programlisting"><a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a>*         pango_ot_info_list_features         (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a> tag,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> script_index,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> language_index);</pre>
<p>
Obtains the list of features for the given language of the given script.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo"><span class="type">PangoOTInfo</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>table_type</code></em> :</span></p></td>
<td> the table type to obtain information about.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
<td> unused parameter.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>script_index</code></em> :</span></p></td>
<td> the index of the script to obtain information about.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>language_index</code></em> :</span></p></td>
<td> the index of the language to list features for, or
    <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-DEFAULT-LANGUAGE:CAPS" title="PANGO_OT_DEFAULT_LANGUAGE"><code class="literal">PANGO_OT_DEFAULT_LANGUAGE</code></a>, to list features for the default
    language of the script.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> a newly-allocated zero-terminated array containing the tags of the
available features.  Should be freed using <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Memory-Allocation.html#g-free"
><code class="function">g_free()</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-buffer-new"></a><h3>pango_ot_buffer_new ()</h3>
<pre class="programlisting"><a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a>*      pango_ot_buffer_new                 (<a class="link" href="PangoFcFont.html" title="PangoFcFont">PangoFcFont</a> *font);</pre>
<p>
Creates a new <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a> for the given OpenType font.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>font</code></em> :</span></p></td>
<td> a <a class="link" href="PangoFcFont.html" title="PangoFcFont"><span class="type">PangoFcFont</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the newly allocated <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a>, which should
              be freed with <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-buffer-destroy" title="pango_ot_buffer_destroy ()"><code class="function">pango_ot_buffer_destroy()</code></a>.

</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.4
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-buffer-destroy"></a><h3>pango_ot_buffer_destroy ()</h3>
<pre class="programlisting">void                pango_ot_buffer_destroy             (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer);</pre>
<p>
Destroys a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a> and free all associated memory.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a>
</td>
</tr></tbody>
</table></div>
<p class="since">Since  1.4
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-buffer-clear"></a><h3>pango_ot_buffer_clear ()</h3>
<pre class="programlisting">void                pango_ot_buffer_clear               (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer);</pre>
<p>
Empties a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a>, make it ready to add glyphs to.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a>
</td>
</tr></tbody>
</table></div>
<p class="since">Since  1.4
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-buffer-add-glyph"></a><h3>pango_ot_buffer_add_glyph ()</h3>
<pre class="programlisting">void                pango_ot_buffer_add_glyph           (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> glyph,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> properties,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> cluster);</pre>
<p>
Appends a glyph to a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a>, with <em class="parameter"><code>properties</code></em> identifying which
features should be applied on this glyph.  See <code class="function">pango_ruleset_add_feature()</code>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>glyph</code></em> :</span></p></td>
<td> the glyph index to add, like a <a class="link" href="pango-Glyph-Storage.html#PangoGlyph" title="PangoGlyph"><span class="type">PangoGlyph</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>properties</code></em> :</span></p></td>
<td> the glyph properties
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cluster</code></em> :</span></p></td>
<td> the cluster that this glyph belongs to
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.4
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-buffer-set-rtl"></a><h3>pango_ot_buffer_set_rtl ()</h3>
<pre class="programlisting">void                pango_ot_buffer_set_rtl             (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a> rtl);</pre>
<p>
Sets whether glyphs will be rendered right-to-left.  This setting
is needed for proper horizontal positioning of right-to-left scripts.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>rtl</code></em> :</span></p></td>
<td> <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> for right-to-left text
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.4
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-buffer-set-zero-width-marks"></a><h3>pango_ot_buffer_set_zero_width_marks ()</h3>
<pre class="programlisting">void                pango_ot_buffer_set_zero_width_marks
                                                        (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a> zero_width_marks);</pre>
<p>
Sets whether characters with a mark class should be forced to zero width.
This setting is needed for proper positioning of Arabic accents,
but will produce incorrect results with standard OpenType Indic
fonts.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>zero_width_marks</code></em> :</span></p></td>
<td> <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if characters with a mark class should
 be forced to zero width.
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.6
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-buffer-get-glyphs"></a><h3>pango_ot_buffer_get_glyphs ()</h3>
<pre class="programlisting">void                pango_ot_buffer_get_glyphs          (const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTGlyph" title="PangoOTGlyph">PangoOTGlyph</a> **glyphs,
                                                         int *n_glyphs);</pre>
<p>
Gets the glyph array contained in a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a>.  The glyphs are
owned by the buffer and should not be freed, and are only valid as long
as buffer is not modified.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>glyphs</code></em> :</span></p></td>
<td> location to store the array of glyphs, or <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_glyphs</code></em> :</span></p></td>
<td> location to store the number of glyphs, or <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.4
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-buffer-output"></a><h3>pango_ot_buffer_output ()</h3>
<pre class="programlisting">void                pango_ot_buffer_output              (const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer,
                                                         <a class="link" href="pango-Glyph-Storage.html#PangoGlyphString" title="PangoGlyphString">PangoGlyphString</a> *glyphs);</pre>
<p>
Exports the glyphs in a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a> into a <a class="link" href="pango-Glyph-Storage.html#PangoGlyphString" title="PangoGlyphString"><span class="type">PangoGlyphString</span></a>.  This is
typically used after the OpenType layout processing is over, to convert the
resulting glyphs into a generic Pango glyph string.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>glyphs</code></em> :</span></p></td>
<td> a <a class="link" href="pango-Glyph-Storage.html#PangoGlyphString" title="PangoGlyphString"><span class="type">PangoGlyphString</span></a>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.4
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-ruleset-get-for-description"></a><h3>pango_ot_ruleset_get_for_description ()</h3>
<pre class="programlisting">const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a>* pango_ot_ruleset_get_for_description
                                                        (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription">PangoOTRulesetDescription</a> *desc);</pre>
<p>
Returns a ruleset for the given OpenType info and ruleset
description.  Rulesets are created on demand using
<a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-new-from-description" title="pango_ot_ruleset_new_from_description ()"><code class="function">pango_ot_ruleset_new_from_description()</code></a>.
The returned ruleset should not be modified or destroyed.
</p>
<p>
The static feature map members of <em class="parameter"><code>desc</code></em> should be alive as
long as <em class="parameter"><code>info</code></em> is.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo"><span class="type">PangoOTInfo</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>desc</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription"><span class="type">PangoOTRulesetDescription</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a> for <em class="parameter"><code>desc</code></em>. This object will have
the same lifetime as <em class="parameter"><code>info</code></em>.

</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.18
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-ruleset-new"></a><h3>pango_ot_ruleset_new ()</h3>
<pre class="programlisting"><a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a>*     pango_ot_ruleset_new                (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info);</pre>
<p>
Creates a new <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a> for the given OpenType info.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo"><span class="type">PangoOTInfo</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the newly allocated <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a>, which
              should be freed with <a
href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#g-object-unref"
><code class="function">g_object_unref()</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-ruleset-new-for"></a><h3>pango_ot_ruleset_new_for ()</h3>
<pre class="programlisting"><a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a>*     pango_ot_ruleset_new_for            (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         <a class="link" href="pango-Scripts-and-Languages.html#PangoScript" title="enum PangoScript">PangoScript</a> script,
                                                         <a class="link" href="pango-Scripts-and-Languages.html#PangoLanguage" title="PangoLanguage">PangoLanguage</a> *language);</pre>
<p>
Creates a new <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a> for the given OpenType info, script, and
language.
</p>
<p>
This function is part of a convenience scheme that highly simplifies
using a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a> to represent features for a specific pair of script
and language.  So one can use this function passing in the script and
language of interest, and later try to add features to the ruleset by just
specifying the feature name or tag, without having to deal with finding
script, language, or feature indices manually.
</p>
<p>
In excess to what <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-new" title="pango_ot_ruleset_new ()"><code class="function">pango_ot_ruleset_new()</code></a> does, this function will:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
  Find the <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag"><span class="type">PangoOTTag</span></a> script and language tags associated with
  <em class="parameter"><code>script</code></em> and <em class="parameter"><code>language</code></em> using <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-tag-from-script" title="pango_ot_tag_from_script ()"><code class="function">pango_ot_tag_from_script()</code></a> and
  <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-tag-from-language" title="pango_ot_tag_from_language ()"><code class="function">pango_ot_tag_from_language()</code></a>,
  </li>
<li>
  For each of table types <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-TABLE-GSUB:CAPS"><code class="literal">PANGO_OT_TABLE_GSUB</code></a> and <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-TABLE-GPOS:CAPS"><code class="literal">PANGO_OT_TABLE_GPOS</code></a>,
  find the script index of the script tag found and the language
  system index of the language tag found in that script system, using
  <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-find-script" title="pango_ot_info_find_script ()"><code class="function">pango_ot_info_find_script()</code></a> and <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-find-language" title="pango_ot_info_find_language ()"><code class="function">pango_ot_info_find_language()</code></a>,
  </li>
<li>
  For found language-systems, if they have required feature
  index, add that feature to the ruleset using
  <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-add-feature" title="pango_ot_ruleset_add_feature ()"><code class="function">pango_ot_ruleset_add_feature()</code></a>,
  </li>
<li>
  Remember found script and language indices for both table types,
  and use them in future <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-maybe-add-feature" title="pango_ot_ruleset_maybe_add_feature ()"><code class="function">pango_ot_ruleset_maybe_add_feature()</code></a> and
  <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-maybe-add-features" title="pango_ot_ruleset_maybe_add_features ()"><code class="function">pango_ot_ruleset_maybe_add_features()</code></a>.
  </li>
</ul></div>
<p>
</p>
<p>
Because of the way return values of <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-find-script" title="pango_ot_info_find_script ()"><code class="function">pango_ot_info_find_script()</code></a> and
<a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-find-language" title="pango_ot_info_find_language ()"><code class="function">pango_ot_info_find_language()</code></a> are ignored, this function automatically
finds and uses the 'DFLT' script and the default language-system.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo"><span class="type">PangoOTInfo</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>script</code></em> :</span></p></td>
<td> a <a class="link" href="pango-Scripts-and-Languages.html#PangoScript" title="enum PangoScript"><span class="type">PangoScript</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>language</code></em> :</span></p></td>
<td> a <a class="link" href="pango-Scripts-and-Languages.html#PangoLanguage" title="PangoLanguage"><span class="type">PangoLanguage</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the newly allocated <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a>, which
              should be freed with <a
href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#g-object-unref"
><code class="function">g_object_unref()</code></a>.

</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.18
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-ruleset-new-from-description"></a><h3>pango_ot_ruleset_new_from_description ()</h3>
<pre class="programlisting"><a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a>*     pango_ot_ruleset_new_from_description
                                                        (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo">PangoOTInfo</a> *info,
                                                         const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription">PangoOTRulesetDescription</a> *desc);</pre>
<p>
Creates a new <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a> for the given OpenType infor and
matching the given ruleset description.
</p>
<p>
This is a convenience function that calls <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-new-for" title="pango_ot_ruleset_new_for ()"><code class="function">pango_ot_ruleset_new_for()</code></a> and
adds the static GSUB/GPOS features to the resulting ruleset, followed by
adding other features to both GSUB and GPOS.
</p>
<p>
The static feature map members of <em class="parameter"><code>desc</code></em> should be alive as
long as <em class="parameter"><code>info</code></em> is.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTInfo"><span class="type">PangoOTInfo</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>desc</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription"><span class="type">PangoOTRulesetDescription</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the newly allocated <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a>, which
              should be freed with <a
href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#g-object-unref"
><code class="function">g_object_unref()</code></a>.

</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.18
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-ruleset-add-feature"></a><h3>pango_ot_ruleset_add_feature ()</h3>
<pre class="programlisting">void                pango_ot_ruleset_add_feature        (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a> *ruleset,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> feature_index,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gulong"
>gulong</a> property_bit);</pre>
<p>
Adds a feature to the ruleset.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>ruleset</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>table_type</code></em> :</span></p></td>
<td> the table type to add a feature to.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>feature_index</code></em> :</span></p></td>
<td> the index of the feature to add.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>property_bit</code></em> :</span></p></td>
<td> the property bit to use for this feature. Used to identify
               the glyphs that this feature should be applied to, or
               <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-ALL-GLYPHS:CAPS" title="PANGO_OT_ALL_GLYPHS"><code class="literal">PANGO_OT_ALL_GLYPHS</code></a> if it should be applied to all glyphs.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-ruleset-maybe-add-feature"></a><h3>pango_ot_ruleset_maybe_add_feature ()</h3>
<pre class="programlisting"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a>            pango_ot_ruleset_maybe_add_feature  (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a> *ruleset,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a> feature_tag,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gulong"
>gulong</a> property_bit);</pre>
<p>
This is a convenience function that first tries to find the feature
using <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-info-find-feature" title="pango_ot_info_find_feature ()"><code class="function">pango_ot_info_find_feature()</code></a> and the ruleset script and language
passed to <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-new-for" title="pango_ot_ruleset_new_for ()"><code class="function">pango_ot_ruleset_new_for()</code></a>,
and if the feature is found, adds it to the ruleset.
</p>
<p>
If <em class="parameter"><code>ruleset</code></em> was not created using <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-new-for" title="pango_ot_ruleset_new_for ()"><code class="function">pango_ot_ruleset_new_for()</code></a>, this function
does nothing.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>ruleset</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>table_type</code></em> :</span></p></td>
<td> the table type to add a feature to.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>feature_tag</code></em> :</span></p></td>
<td> the tag of the feature to add.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>property_bit</code></em> :</span></p></td>
<td> the property bit to use for this feature. Used to identify
               the glyphs that this feature should be applied to, or
               <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-ALL-GLYPHS:CAPS" title="PANGO_OT_ALL_GLYPHS"><code class="literal">PANGO_OT_ALL_GLYPHS</code></a> if it should be applied to all glyphs.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if the feature was found and added to ruleset,
              <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"
><code class="literal">FALSE</code></a> otherwise.

</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.18
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-ruleset-maybe-add-features"></a><h3>pango_ot_ruleset_maybe_add_features ()</h3>
<pre class="programlisting"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a>               pango_ot_ruleset_maybe_add_features (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a> *ruleset,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTableType" title="enum PangoOTTableType">PangoOTTableType</a> table_type,
                                                         const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTFeatureMap" title="PangoOTFeatureMap">PangoOTFeatureMap</a> *features,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> n_features);</pre>
<p>
This is a convenience function that 
for each feature in the feature map array <em class="parameter"><code>features</code></em>
converts the feature name to a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag"><span class="type">PangoOTTag</span></a> feature tag using <a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-TAG-MAKE:CAPS" title="PANGO_OT_TAG_MAKE()"><code class="function">PANGO_OT_TAG_MAKE()</code></a>
and calls <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-maybe-add-feature" title="pango_ot_ruleset_maybe_add_feature ()"><code class="function">pango_ot_ruleset_maybe_add_feature()</code></a> on it.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>ruleset</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>table_type</code></em> :</span></p></td>
<td> the table type to add features to.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>features</code></em> :</span></p></td>
<td> array of feature name and property bits to add.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_features</code></em> :</span></p></td>
<td> number of feature records in <em class="parameter"><code>features</code></em> array.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> The number of features in <em class="parameter"><code>features</code></em> that were found
              and added to <em class="parameter"><code>ruleset</code></em>.

</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.18
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-ruleset-get-feature-count"></a><h3>pango_ot_ruleset_get_feature_count ()</h3>
<pre class="programlisting"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a>               pango_ot_ruleset_get_feature_count  (const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a> *ruleset,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> *n_gsub_features,
                                                         <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a> *n_gpos_features);</pre>
<p>
Gets the number of GSUB and GPOS features in the ruleset.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>ruleset</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_gsub_features</code></em> :</span></p></td>
<td> location to store number of GSUB features, or <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>n_gpos_features</code></em> :</span></p></td>
<td> location to store number of GPOS features, or <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> Total number of features in the <em class="parameter"><code>ruleset</code></em>.

</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.18
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-ruleset-substitute"></a><h3>pango_ot_ruleset_substitute ()</h3>
<pre class="programlisting">void                pango_ot_ruleset_substitute         (const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a> *ruleset,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer);</pre>
<p>
Performs the OpenType GSUB substitution on <em class="parameter"><code>buffer</code></em> using the features
in <em class="parameter"><code>ruleset</code></em></p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>ruleset</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a>.
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.4
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-ruleset-position"></a><h3>pango_ot_ruleset_position ()</h3>
<pre class="programlisting">void                pango_ot_ruleset_position           (const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset">PangoOTRuleset</a> *ruleset,
                                                         <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer">PangoOTBuffer</a> *buffer);</pre>
<p>
Performs the OpenType GPOS positioning on <em class="parameter"><code>buffer</code></em> using the features
in <em class="parameter"><code>ruleset</code></em></p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>ruleset</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRuleset"><span class="type">PangoOTRuleset</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
<td> a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTBuffer" title="PangoOTBuffer"><span class="type">PangoOTBuffer</span></a>.
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.4
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-ruleset-description-copy"></a><h3>pango_ot_ruleset_description_copy ()</h3>
<pre class="programlisting"><a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription">PangoOTRulesetDescription</a>* pango_ot_ruleset_description_copy
                                                        (const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription">PangoOTRulesetDescription</a> *desc);</pre>
<p>
Creates a copy of <em class="parameter"><code>desc</code></em>, which should be freed with
<a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-description-free" title="pango_ot_ruleset_description_free ()"><code class="function">pango_ot_ruleset_description_free()</code></a>. Primarily used internally
by <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-get-for-description" title="pango_ot_ruleset_get_for_description ()"><code class="function">pango_ot_ruleset_get_for_description()</code></a> to cache rulesets for
ruleset descriptions.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>desc</code></em> :</span></p></td>
<td> ruleset description to copy
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the newly allocated <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription"><span class="type">PangoOTRulesetDescription</span></a>, which
              should be freed with <a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-description-free" title="pango_ot_ruleset_description_free ()"><code class="function">pango_ot_ruleset_description_free()</code></a>.

</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.18
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-ruleset-description-equal"></a><h3>pango_ot_ruleset_description_equal ()</h3>
<pre class="programlisting"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a>            pango_ot_ruleset_description_equal  (const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription">PangoOTRulesetDescription</a> *desc1,
                                                         const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription">PangoOTRulesetDescription</a> *desc2);</pre>
<p>
Compares two ruleset descriptions for equality.
Two ruleset descriptions are considered equal if the rulesets
they describe are provably identical.  This means that their
script, language, and all feature sets should be equal.  For static feature
sets, the array addresses are compared directly, while for other
features, the list of features is compared one by one.
(Two ruleset descriptions may result in identical rulesets
being created, but still compare <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"
><code class="literal">FALSE</code></a>.)</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>desc1</code></em> :</span></p></td>
<td> a ruleset description
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>desc2</code></em> :</span></p></td>
<td> a ruleset description
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"
><code class="literal">TRUE</code></a> if two ruleset descriptions are identical,
              <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"
><code class="literal">FALSE</code></a> otherwise.

</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.18
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-ruleset-description-free"></a><h3>pango_ot_ruleset_description_free ()</h3>
<pre class="programlisting">void                pango_ot_ruleset_description_free   (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription">PangoOTRulesetDescription</a> *desc);</pre>
<p>
Frees a ruleset description allocated by 
<a class="link" href="pango-OpenType-Font-Handling.html#pango-ot-ruleset-description-copy" title="pango_ot_ruleset_description_copy ()"><code class="function">pango_ot_ruleset_description_copy()</code></a>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>desc</code></em> :</span></p></td>
<td> an allocated <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription"><span class="type">PangoOTRulesetDescription</span></a>
</td>
</tr></tbody>
</table></div>
<p class="since">Since  1.18
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-ruleset-description-hash"></a><h3>pango_ot_ruleset_description_hash ()</h3>
<pre class="programlisting"><a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"
>guint</a>               pango_ot_ruleset_description_hash   (const <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription">PangoOTRulesetDescription</a> *desc);</pre>
<p>
Computes a hash of a <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTRulesetDescription" title="PangoOTRulesetDescription"><span class="type">PangoOTRulesetDescription</span></a> structure suitable
to be used, for example, as an argument to <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Hash-Tables.html#g-hash-table-new"
><code class="function">g_hash_table_new()</code></a>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>desc</code></em> :</span></p></td>
<td> a ruleset description
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> the hash value.

</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.18
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-tag-from-language"></a><h3>pango_ot_tag_from_language ()</h3>
<pre class="programlisting"><a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a>          pango_ot_tag_from_language          (<a class="link" href="pango-Scripts-and-Languages.html#PangoLanguage" title="PangoLanguage">PangoLanguage</a> *language);</pre>
<p>
Finds the OpenType language-system tag best describing <em class="parameter"><code>language</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>language</code></em> :</span></p></td>
<td> A <a class="link" href="pango-Scripts-and-Languages.html#PangoLanguage" title="PangoLanguage"><span class="type">PangoLanguage</span></a>, or <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag"><span class="type">PangoOTTag</span></a> best matching <em class="parameter"><code>language</code></em> or
<a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-TAG-DEFAULT-LANGUAGE:CAPS" title="PANGO_OT_TAG_DEFAULT_LANGUAGE"><code class="literal">PANGO_OT_TAG_DEFAULT_LANGUAGE</code></a> if none found or if <em class="parameter"><code>language</code></em>
is <a
href="/home/behdad/.local/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"
><code class="literal">NULL</code></a>.

</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.18
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-tag-from-script"></a><h3>pango_ot_tag_from_script ()</h3>
<pre class="programlisting"><a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a>          pango_ot_tag_from_script            (<a class="link" href="pango-Scripts-and-Languages.html#PangoScript" title="enum PangoScript">PangoScript</a> script);</pre>
<p>
Finds the OpenType script tag corresponding to <em class="parameter"><code>script</code></em>.
</p>
<p>
The <a class="link" href="pango-Scripts-and-Languages.html#PANGO-SCRIPT-COMMON:CAPS"><code class="literal">PANGO_SCRIPT_COMMON</code></a>, <a class="link" href="pango-Scripts-and-Languages.html#PANGO-SCRIPT-INHERITED:CAPS"><code class="literal">PANGO_SCRIPT_INHERITED</code></a>, and
<a class="link" href="pango-Scripts-and-Languages.html#PANGO-SCRIPT-UNKNOWN:CAPS"><code class="literal">PANGO_SCRIPT_UNKNOWN</code></a> scripts are mapped to the OpenType
'DFLT' script tag that is also defined as
<a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-TAG-DEFAULT-SCRIPT:CAPS" title="PANGO_OT_TAG_DEFAULT_SCRIPT"><code class="literal">PANGO_OT_TAG_DEFAULT_SCRIPT</code></a>.
</p>
<p>
Note that multiple <a class="link" href="pango-Scripts-and-Languages.html#PangoScript" title="enum PangoScript"><span class="type">PangoScript</span></a> values may map to the same
OpenType script tag.  In particular, <a class="link" href="pango-Scripts-and-Languages.html#PANGO-SCRIPT-HIRAGANA:CAPS"><code class="literal">PANGO_SCRIPT_HIRAGANA</code></a>
and <a class="link" href="pango-Scripts-and-Languages.html#PANGO-SCRIPT-KATAKANA:CAPS"><code class="literal">PANGO_SCRIPT_KATAKANA</code></a> both map to the OT tag 'kana'.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>script</code></em> :</span></p></td>
<td> A <a class="link" href="pango-Scripts-and-Languages.html#PangoScript" title="enum PangoScript"><span class="type">PangoScript</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag"><span class="type">PangoOTTag</span></a> corresponding to <em class="parameter"><code>script</code></em> or
<a class="link" href="pango-OpenType-Font-Handling.html#PANGO-OT-TAG-DEFAULT-SCRIPT:CAPS" title="PANGO_OT_TAG_DEFAULT_SCRIPT"><code class="literal">PANGO_OT_TAG_DEFAULT_SCRIPT</code></a> if none found.

</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.18
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-tag-to-language"></a><h3>pango_ot_tag_to_language ()</h3>
<pre class="programlisting"><a class="link" href="pango-Scripts-and-Languages.html#PangoLanguage" title="PangoLanguage">PangoLanguage</a>*      pango_ot_tag_to_language            (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a> language_tag);</pre>
<p>
Finds a <a class="link" href="pango-Scripts-and-Languages.html#PangoLanguage" title="PangoLanguage"><span class="type">PangoLanguage</span></a> corresponding to <em class="parameter"><code>language_tag</code></em>.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>language_tag</code></em> :</span></p></td>
<td> A <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag"><span class="type">PangoOTTag</span></a> OpenType language-system tag
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> <a class="link" href="pango-Scripts-and-Languages.html#PangoLanguage" title="PangoLanguage"><span class="type">PangoLanguage</span></a> best matching <em class="parameter"><code>language_tag</code></em> or
<a class="link" href="pango-Scripts-and-Languages.html#PangoLanguage" title="PangoLanguage"><span class="type">PangoLanguage</span></a> corresponding to the string "xx" if none found.

</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.18
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="pango-ot-tag-to-script"></a><h3>pango_ot_tag_to_script ()</h3>
<pre class="programlisting"><a class="link" href="pango-Scripts-and-Languages.html#PangoScript" title="enum PangoScript">PangoScript</a>         pango_ot_tag_to_script              (<a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag">PangoOTTag</a> script_tag);</pre>
<p>
Finds the <a class="link" href="pango-Scripts-and-Languages.html#PangoScript" title="enum PangoScript"><span class="type">PangoScript</span></a> corresponding to <em class="parameter"><code>script_tag</code></em>.
</p>
<p>
The 'DFLT' script tag is mapped to <a class="link" href="pango-Scripts-and-Languages.html#PANGO-SCRIPT-COMMON:CAPS"><code class="literal">PANGO_SCRIPT_COMMON</code></a>.
</p>
<p>
Note that an OpenType script tag may correspond to multiple
<a class="link" href="pango-Scripts-and-Languages.html#PangoScript" title="enum PangoScript"><span class="type">PangoScript</span></a> values.  In such cases, the <a class="link" href="pango-Scripts-and-Languages.html#PangoScript" title="enum PangoScript"><span class="type">PangoScript</span></a> value
with the smallest value is returned.
In particular, <a class="link" href="pango-Scripts-and-Languages.html#PANGO-SCRIPT-HIRAGANA:CAPS"><code class="literal">PANGO_SCRIPT_HIRAGANA</code></a>
and <a class="link" href="pango-Scripts-and-Languages.html#PANGO-SCRIPT-KATAKANA:CAPS"><code class="literal">PANGO_SCRIPT_KATAKANA</code></a> both map to the OT tag 'kana'.
This function will return <a class="link" href="pango-Scripts-and-Languages.html#PANGO-SCRIPT-HIRAGANA:CAPS"><code class="literal">PANGO_SCRIPT_HIRAGANA</code></a> for
'kana'.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>script_tag</code></em> :</span></p></td>
<td> A <a class="link" href="pango-OpenType-Font-Handling.html#PangoOTTag" title="PangoOTTag"><span class="type">PangoOTTag</span></a> OpenType script tag
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> <a class="link" href="pango-Scripts-and-Languages.html#PangoScript" title="enum PangoScript"><span class="type">PangoScript</span></a> corresponding to <em class="parameter"><code>script_tag</code></em> or
<a class="link" href="pango-Scripts-and-Languages.html#PANGO-SCRIPT-UNKNOWN:CAPS"><code class="literal">PANGO_SCRIPT_UNKNOWN</code></a> if none found.

</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  1.18
</p>
</div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.10</div>
</body>
</html>
